Jump to content
SeBeN682

Dodawanie nowych produktów przez własny moduł

Recommended Posts

Witam mam problem z użyciem funkcji add() lub save() w pętli we własnym module

Po krótce :

 

Presta 1.6.1.7

Zaciągam produkty z innej bazy i sprawdzam czy są już dodane w sklepie po indeksie ('reference')

jeśli ich nie ma to chce je dodawać w petli

.
.
.
foreach ($products as $product){
    $indeks = str_replace(' ', '', $product['indeks']);
    $cena_netto = $product['cena_netto'];
    $waga = $product['waga'];
    $stawka_vat = str_replace(' ', '', $product['stawka_vat']);
    $stan_mag = $product['stan_mag'];
    $nazwa = $product['artykul'];

    $check = array_search($indeks, array_column($products_in_shop, 'reference'));
    if($check == '' && !is_integer($check)){

      switch ($stawka_vat)
      {
        case 0:$stawka_vat = 0;break;
        case 23:$stawka_vat = 1;break;
        case 8:$stawka_vat = 2;break;
        case 5:$stawka_vat = 3;break;
      }

      $id_lang = (int)(Configuration::get('PS_LANG_DEFAULT')); 


      $object = new Product();
      $object->description = array($id_lang => '');
      $object->description_short = array($id_lang => '');
      $object->link_rewrite = array($id_lang => '');
      $object->name = array($id_lang => $nazwa);
      $object->id_shop_default = 1;
      $object->price = (float)$cena_netto;
      $object->id_tax_rules_group = (int)$stawka_vat;
      $object->reference = $indeks;
      $object->quantity = (int)$stan_mag;
      $object->id_manufacturer = 0;
      $object->id_supplier = 0;
      $object->additional_shipping_cost = 0;
      $object->wholesale_price = 0;
      $object->ecotax = 0;
      $object->width = 0;
      $object->height = 0;
      $object->depth = 0;
      $object->weight = (float)$waga;
      $object->out_of_stock = 0;
      $object->active = 1;
      $object->available_for_order = 0;
      $object->show_price = 1;
      $object->on_sale = 0;
      $object->online_only = 1;

      if (!isset($object->date_add) || empty($object->date_add))
        $object->date_add = date('Y-m-d H:i:s');
      $object->date_upd = date('Y-m-d H:i:s');

      $ajax = true;

      $object->add();
    }
  }
.
.
.

ogólnie skrypt działa lecz dodaje tylko jeden product i koniec tak jakby return false;

 

Jeśli macie jakieś pomysły to proszę o pomoc

z góry THX
 

Edited by SeBeN682 (see edit history)

Share this post


Link to post
Share on other sites

po pierwsze wlacz sobie wyswietlanie bledow, po drugie sprawdz var_dump-em co w calej pentli zwraca $object i porownaj dla poszczegolnych produktow. a tak jeszcze dodatkowe pytanie, jak ukladaja ci sie ID wprowadzanych produktow? po kazdej wrzucie masz ID +1 czy przeskakuje o +X wrzucanych produktow?

  • Like 1

Share this post


Link to post
Share on other sites

po pierwsze wlacz sobie wyswietlanie bledow, po drugie sprawdz var_dump-em co w calej pentli zwraca $object i porownaj dla poszczegolnych produktow. a tak jeszcze dodatkowe pytanie, jak ukladaja ci sie ID wprowadzanych produktow? po kazdej wrzucie masz ID +1 czy przeskakuje o +X wrzucanych produktow?

 

Problem rozwiązany

Po włączeniu debugowania pojawiały się komunikaty ze pole $object->link_rewrite posiadało nie prawidłowe znaki typu #?!* itp co wywalalo błąd

 

Teraz wszystko działa prawidłowo

 

THX

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More