Jump to content
thirty bees forum

Module Invoilc Prestabay


Beeta

Recommended Posts

Hello, I would like to know how many 30bees admin use Involic Prestabay module.

How about use this thread to exchange suggestions and hints about it?

For example in my case I miss a Fastbay feature that avoid to send to ebay low price items.

Right now I "solved" it using price ranges in price templates.

I set a price template with a price range that will be multiplie by 0 so ebay will give an error as the price is too low (less then 1€) and the item will not be listed... but I'm afraid that to many errors will trigger some "seller check".

What do you think about involic prestabay?
Do you miss features?

 

@haylau  @Lausli

@30knees @Havouza

@Leaton

@ALM

@veganline

@Alan @CoffeeGuy

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I have eMagicone. It's cheap and works for other people, but I have not learned to make it work for me. I don't yet use Involic.

Is there a thread for eMagicone? Or could there be? I am probably missing something about what it's good for, and what's more tricky to achieve with it.

---13.02.2022
My hunch is that Prestashop Manager from eMagicone mainly works, but the ebay integration module for it is a bit of an afterthought and has some un-fixed glitch, so nobody uses it for Thirtybees. Can anyone prove me wrong with a working instance?

---
Their support desk tells me that the problem is usually a non-standard database but that the version I bought was due to stop working in a year or so anyway.

Edited by veganline
13.02.2002 / 20.05.2022
Link to comment
Share on other sites

  • 2 weeks later...

Yes I'm using Involic Prestabay, from today and hope it will work. I found these videos online.

PrestaBay - PrestaShop eBay Integration. Manual. Assign new eBay Account

5.2K views10 years ago
 
hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4 hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4
--------------------------------------------------------------------23/02/22
 
I'm still working out how to make it work and what it does, but I can see that it works for other people

https://docs.salest.io/collection/4-prestashop-ebay - instructions by the look of them; contents list on the left.

This is now where they do technical support, if you remember to use it within the three month deadline or extend for €179 or whatever it is.

---------------------------------------------------------------------20/05/22

I had missed something in the instructions about how to make ebay sales update Thirtybees stock. This is how the help desk explain it.
 
Quote

PrestaBay module has a few ways to synchronize stock on your shop with stock on the ebay marketplace.
As I understand you need to synchronize it from Ebay > Thirtybees. So sales on ebay affect stock on your Thirtybees item.

The easiest way of doing this, it's to activate the Order Import function. If SKU on Thirtybees store is match ebay item SKU, then the order could be imported and stock adjusted.

If you don't need an order to be imported, then there is a more complex way of doing an update to QTY after the sale happens.

In order to make it works like this, you need to move all your eBay listings under PrestaBay control (they should be "Active" and located inside Selling Lists).

At the moment on your installation you have QTY Synchronization enabled, but order import disabled. Also, you have only one item on Selling List and it's in a Not Active state. This is the reason why you can't see qty changes to your store products after you receive a sale on ebay,

Hope this information will help you.



 
Edited by veganline
Link to comment
Share on other sites

  • 9 months later...
  • 2 months later...

@veganlineI upgraded to 1.4 and php 7.2.34

The module can't sync anymore products 😞If I try to send manually a product to ebay it doesn't give any error but stay in "Sending" without doing anything else.
It sync orders and messages correctly but not products.

I can't find errors in logs.
I contacted their support but they are slow to respond. 😞

Link to comment
Share on other sites

@datakickI found the error but I don't know if it's a thirtybees 1.4 (1.5) bug or of the module it self.

The only thing I've done were:

update to 1.4 bleeding edge from 1.3
recompiled php 7.2.34 to add fileinfo module

here's the decrypted 500 error.

 TypeError
Argument 5 passed to LinkCore::getProductImageUri() must be of the type string, array given, called in /home/nginx/domains/domain.com/public/classes/Link.php on line 375
in file /home/nginx/domains/domain.com/public/classes/Link.php at line 1180
Source file: /home/nginx/domains/domain.com/public/classes/Link.php

1161:                return _THEME_PROD_DIR_ . $candidate;
1162:            }
1163:        }
1164:
1165:        // Default image was not found
1166:        return false;
1167:    }
1168:
1169:    /**
1170:     * This method returns uri to product image, if it exists
1171:     *
1172:     * @param int $imageId
1173:     * @param string $formattedType
1174:     * @param bool $highDpi
1175:     * @param string $preferredExtension
1176:     * @param string $name
1177:     *
1178:     * @return string | false
1179:     */
1180:    protected function getProductImageUri(int $imageId, string $formattedType, bool $highDpi, string $preferredExtension, string $name): string
1181:    {
1182:        // ids can either be single number, or in format id_product-id_image
1183:        $typeDimension = $formattedType ? '-'.$formattedType : '';
1184:        $highDpiDimension = $highDpi ? '2x' : '';
1185:
1186:        $extensions = [ $preferredExtension ];
1187:        if ($preferredExtension === 'webp') {
1188:            $extensions[] = 'jpg';
1189:        }
1190:
Link to comment
Share on other sites

Technically, it is a bug in the module.

Module is calling Link::getImageLink method with wrong parameter. It passes array instead of string as image name. That is a bug - you should report this to module developer and ask them to fix it. This is most likely caused by loading Product instance in all-language context:

$product = new Product(1);
print_r($product->link_rewrite);

This will display array of all link_rewrites in all languages. Module probably pass this link_rewrite to $link object

If module loaded objet in single language context, it would work. Following code displays string

$product = new Product(1, false, 1);
print_r($product->link_rewrite);

In 1.3.0, this invalid parameter was silently converted to string, and system returned image url like this:

https://domain.com/111-Niara_home/Array.jpg

Since image name is not important, it worked, and nobody probably reported this.

In 1.4.0, there is new function in the pipeline that expects and accepts only string, and that now throws exception.

While this is a bug in module, I think it's a good idea to support the old behaviour for some time as well. I have committed fix into bleeding edge that will convert input Array to string if needed, and it will also raise warning: https://github.com/thirtybees/thirtybees/commit/809f16c2fa318a981685ad20d5498b4971676ba1

You should:

  1. update to bleeding edge using core updater
  2. install collectlogs module
  3. use module, and then copy error messages from collectlogs and send them to module developer. That will help them to fix this faster

 

  • Like 1
Link to comment
Share on other sites

Thank you very much @datakick

6 hours ago, datakick said:

You should:

  1. update to bleeding edge using core updater
  2. install collectlogs module
  3. use module, and then copy error messages from collectlogs and send them to module developer. That will help them to fix this faster

I'm already on bleeding edge and it say that I'm already using latest bleeding edge version fcf3987d011c85bb59dd7b75c9c75ef91b715036

It's ok to use Official releases or have I to set development branches? The second one, right?

Edited by Beeta
Link to comment
Share on other sites

31 minutes ago, Beeta said:

Thank you very much @datakick

I'm already on bleeding edge and it say that I'm already using latest bleeding edge version fcf3987d011c85bb59dd7b75c9c75ef91b715036

It's ok to use Official releases or have I to set development branches? The second one, right?

Code in bleeding edge is NOT compatible with PHP7.2. The lowest supported php version is 7.4. Core updater will not allow you to update to latest commits, as it would break your store. It offers you the last commit that was PHP7.2 compatible -- fcf3987d011c85bb59dd7b75c9c75ef91b715036.

I suggest you update your server to PHH7.4. If your store runs on 7.2, it should run without issues on 7.4 as well. Then run core updater, and update to bleeding edge. 

  • Like 1
Link to comment
Share on other sites

2 hours ago, datakick said:

I suggest you update your server to PHH7.4. If your store runs on 7.2, it should run without issues on 7.4 as well. Then run core updater, and update to bleeding edge. 

I'm not sure about prestabay compatibility with 7.4.
I'm going to check and in case upgrade.

  • Like 1
Link to comment
Share on other sites

24 minutes ago, Beeta said:

I'm not sure about prestabay compatibility with 7.4.
I'm going to check and in case upgrade.

There were very few breaking changes in php7.3 and php7.4 releases. It is very likely you can safely update. It's not like updating to php8.

You will probably see a lot more warnings in your logs after. But that's a good thing. You should fix those before you move forward to php8.

Link to comment
Share on other sites

Update to 7.4 done, now I'm getting this loading the module page:


Exception

Message:
Involic\Exceptions\DBException: DB Instance should be instance of DbPDO, we get Db


Location:
modules/prestabay/library/PSR4/Involic/Repository/AbstractRepository.php line 48

Stacktrace

#0  modules/prestabay/library/PSR4/Involic/Repository/AbstractRepository.php(48)
#1  modules/prestabay/library/PSR4/Involic/Model/AbstractModel.php(53): Involic\Repository\AbstractRepository->__construct()
#2  modules/prestabay/library/PrestaBayContainer.php(188): Involic\Model\AbstractModel::getRepository()
#3  modules/prestabay/library/PSR4/Pimple/Container.php(115): PrestaBay\Library\PrestaBayContainer::PrestaBay\Library\{closure}()
#4  modules/prestabay/library/PrestaBayContainer.php(240): Pimple\Container->offsetGet()
#5  modules/prestabay/library/PSR4/Pimple/Container.php(115): PrestaBay\Library\PrestaBayContainer::PrestaBay\Library\{closure}()
#6  modules/prestabay/library/PrestaBayContainer.php(363): Pimple\Container->offsetGet()
#7  modules/prestabay/services/Synchronization/Tasks/Order.php(53): PrestaBay\Library\PrestaBayContainer->get()
#8  modules/prestabay/services/Synchronization/Factory.php(37): PrestaBay\Services\Synchronization\Tasks\Order->__construct()
#9  modules/prestabay/services/Synchronization/Run.php(203): PrestaBay\Services\Synchronization\Factory::getTask()
#10 modules/prestabay/services/Synchronization/Run.php(157): PrestaBay\Services\Synchronization\Run->executeCronJobs()
#11 modules/prestabay/controllers/front/cronImportant.php(51): PrestaBay\Services\Synchronization\Run->execute()
#12 classes/controller/Controller.php(191): PrestabayCronImportantModuleFrontController->postProcess()
#13 classes/controller/FrontController.php(243): ControllerCore->run()
#14 classes/Dispatcher.php(851): FrontControllerCore->run()
#15 index.php(33): DispatcherCore->dispatch()

 

this is the interested part of modules/prestabay/library/PSR4/Involic/Repository/AbstractRepository.php

    public function __construct(array $definition)
    {
     	$this->tableName = _DB_PREFIX_ . bqSQL($definition['table']);
        $this->primaryKey = $definition['primary'];

        $dbInstance = Db::getInstance();
        if (!$dbInstance instanceof DbPDO) {
            throw new DBException(
                sprintf('DB Instance should be instance of DbPDO, we get %s', get_class($dbInstance))
            );
	}

	$this->dbInstance = $dbInstance;
        $this->pdoLink = $this->accessProtected($dbInstance, 'link');
    }
Edited by Beeta
  • Like 1
Link to comment
Share on other sites

Delete the code

        if (!$dbInstance instanceof DbPDO) {
            throw new DBException(
                sprintf('DB Instance should be instance of DbPDO, we get %s', get_class($dbInstance))
            );
        }

from file /modules/prestabay/library/PSR4/Involic/Repository/AbstractRepository.php

  • Like 1
Link to comment
Share on other sites

meanwhile involic replied suggesting to edit the "if" from:

        if (!$dbInstance instanceof DbPDO) {
            throw new DBException(
                sprintf('DB Instance should be instance of DbPDO, we get %s', get_class($dbInstance))
            );
        }

to:

        if (!$dbInstance instanceof Db) {
            throw new DBException(
                sprintf('DB Instance should be instance of DbPDO, we get %s', get_class($dbInstance))
            );
        }
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

@Beeta
About whether I got the module working.
Never with PHP 7.4 and TB 1.3 or 1.4.. Then it lost all signs of life with PHP version 8. It was the €199 Starter Integration module version 1.8.8 which they now list as "out of stock". Their web site lists updates ending at version 1.8.1 and just an import version available now.

Mine could import ebay sales to the back office with a note on each saying something like "no matching prestashop product", so maybe I was close for import. I never saw it export to ebay. And there was some kind of formatting error message that cropped-up at every click:
prestabay/views/templates/admin/involic/widget/grid.tpl

I'm interested to know if it ever works on PHP version 1.74 and might even revert to give it a go.

I also have the EmagicOne module which is meant to have an add-on for ebay, but I have never managed to make that one work either. The main EmagicOne module ramains on the list after changing to PHP8 bit I haven't tried to use it at all. It does look as though 30knees on the forum uses their Amazon link.

I'm going to have a look at ebay2 as well

Edited by veganline
error message; mention of 30knees
  • Like 1
Link to comment
Share on other sites

On 3/19/2023 at 7:15 PM, veganline said:

@Beeta
About whether I got the module working.
Never with PHP 7.4 and TB 1.3 or 1.4.. Then it lost all signs of life with PHP version 8. It was the €199 Starter Integration module version 1.8.8 which they now list as "out of stock". Their web site lists updates ending at version 1.8.1 and just an import version available now.

mine is working

TB 1.5
NGINX 1.17.1 (old)
PHP 7.4.33

Prestabay version 4.2.1

The price difference from startup and professional are about 30€.
https://involic.com/prestabay-prestashop-ebay-integration/pricing

Edited by Beeta
  • Like 1
Link to comment
Share on other sites

With professional you pay 29€ per month or 12 months upfront for 228€ (19€ per month). You can see those price change switch the annually and monthly button on the left.

The deprecated "startup" license was lifetime but without the possibility to get updates (only bugfixes).

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...